package tk.uodrad.apex.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import tk.uodrad.apex.project.pojo.dto.ActivityAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.ActivityUpdateDTO;
import tk.uodrad.apex.project.pojo.dto.ComplaintAddNewDTO;
import tk.uodrad.apex.project.pojo.dto.ComplaintUpdateDTO;
import tk.uodrad.apex.project.pojo.entity.ActivityManagement;
import tk.uodrad.apex.project.pojo.entity.Complaint;
import com.baomidou.mybatisplus.extension.service.IService;
import tk.uodrad.apex.project.pojo.vo.ComplainListVO;
import tk.uodrad.apex.project.pojo.vo.ComplaintDashboardVO;

import java.util.List;

/**
* @author Administrator
* @description 针对表【complaint_management】的数据库操作Service
* @createDate 2023-04-08 16:58:52
*/
public interface ComplaintService extends IService<Complaint> {

    /**
     * 保修“是否受理”的状态文本
     */
    String ENABLE_TEXT[] = {"不匿名", "匿名"};

    /**
     * 受理保修
     *
     * @param id 尝试启用的类别的id
     */
    void setEnable(Long id);

    /**
     * 未受理保修
     *
     * @param id 尝试禁用的类别的id
     */
    void setDisable(Long id);

    /**
     * 添加单个投诉
     * @param complaintAddNewDTO 添加投诉DTO
     */
    void save(ComplaintAddNewDTO complaintAddNewDTO);

    /**
     * 根据ID修改投诉信息
     * @param complaintUpdateDTO 修改投诉DTO
     */
    void updateById(ComplaintUpdateDTO complaintUpdateDTO);

    /**
     * 分页查询成员列表
     * @param pageNum 第几页
     * @param pageSize 每页多少条数据
     * @return IPage<Community> 分页对象
     */
    IPage<ComplainListVO> list(Integer pageNum, Integer pageSize, String communityCode);

    List<ComplaintDashboardVO> listDashboard();

}
